//
// Created by ld016 on 17-1-24.
//

#ifndef _RENDERER_RENDERER_H_
#define _RENDERER_RENDERER_H_

#include <memory>

struct GLFWwindow;
class _Renderer_Impl;

class Renderer {
public:
    Renderer(GLFWwindow* window);
    ~Renderer();

    void resize(int width, int height);
    void requestDraw(float deltatime);
    void cleanUp();

    Renderer(const Renderer&) = delete;
    Renderer& operator= (const Renderer&) = delete;
    Renderer(Renderer&&) = delete;
    Renderer& operator= (Renderer&&) = delete;

private:
    std::unique_ptr<_Renderer_Impl> p_impl;
};

#endif